package com.example.system.service;

import com.example.system.exception.BusinessException;
import com.example.system.model.Item;
import com.example.system.model.Order;

import java.time.LocalDateTime;
import java.util.List;

public interface IOrderService {

    /**
     * 创建订单（带时间模拟参数）
     *
     * @param items       商品列表
     * @param isVIP       是否VIP用户
     * @param currentTime 模拟当前时间（用于测试时间敏感规则）
     *                    BusinessException用于处理业务逻辑中可能出现的异常情况。
     */
    Order createOrder(List<Item> items, boolean isVIP, LocalDateTime currentTime)throws BusinessException;

    /**
     * 取消订单（带时间模拟参数）
     * @param orderId 订单ID
     * @param currentTime 模拟当前时间（用于计算超时）
     */
     void cancelOrder(String orderId,LocalDateTime currentTime)throws BusinessException;

    com.example.system.model.Order findOrder(String orderId, LocalDateTime currentTime);

    List<com.example.system.model.Order> listOrder();
}
